In the context of floating point numbers represented within a microprocessor, non-zero finite numbers, or operands, are divided into two classes: normalized (or normal) and denormalized (or denormal) numbers. This is discussed in more detail, for example, in sections 4.8.2.1 and 4.8.3.2 of the IA-32 Intel Architecture Software Developer's Manual, Volume 1: Basic Architecture, 2002, Order Number 245470-008, published by the Intel Corporation, which are hereby incorporated by reference, and which will be briefly summarized here. A normal number, or normalized number, or number encoded in normalized form, has a significand made up of a real number between 1 and 2 (i.e., an integer 1 bit followed by bits that make up a fraction) and an exponent that specifies the location of the binary point in the number. When a floating-point number becomes very close to zero, the normalized number format can no longer be used to represent the number because the range of the exponent is not large enough to compensate for shifting the binary point to the right to eliminate leading zeroes. When the (biased) exponent is zero, smaller numbers can only be represented by making the integer bit (and perhaps other leading bits) of the significand zero. The numbers in this range are called denormal numbers, or denormalized numbers, or numbers in denormalized form. The use of leading zeros with denormalized numbers allows smaller numbers to be represented. However, this denormalization causes a loss of precision (the number of significant bits in the fraction is reduced by the leading zeros).
Generally speaking, floating point units within a microprocessor are designed to perform computations on operands in normalized form. Therefore, when an instruction specifies a denormal operand, the microprocessor converts it into a normal operand in order to perform the computation specified by the instruction. This process may increase instruction execution latency by consuming a relatively large amount of time and/or require a non-constant amount of time to perform, which introduces problems as discussed in more detail below.